1. Field of the Invention
The present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, it relates to a method, system and computer-usable medium for managing storage control unit input/output (I/O) operations in a multi-host environment.
2. Description of the Related Art
In a multi-mode, multi-connectivity environment, a host's ability to initiate multiple input/output (I/O) operations with a storage control unit often exceeds the control unit's ability to have sufficient resources to process all incoming I/O requests. When this occurs, the storage control unit will respond with a busy status indicator (such as a CUBusy status message) to the requesting host to indicate that it has exhausted its available resources and is unable to process the current incoming request. The host, upon receiving the busy status message, suspends new I/O requests tier the specified logical path until the storage control unit responds with an availability indicator (such as a CUEnd status message), which indicates that the condition that prevented the previous operation from completing no longer exists.
However, some hosts may be able to respond to the availability status message faster than others when multiple hosts are accessing the same storage control unit. For example, in a Storage Area Network (SAN) configuration, hosts accessing a storage control unit via switches, extenders, and other SAN elements will have a longer path to traverse to access the control unit. Furthermore, some hosts are simply faster due to their design or intrinsic hardware capabilities.
Regardless, once a storage control unit emerges from a busy condition, it will send a availability status message to every logical path that it had previously sent a busy status message. In response, each host that receives the availability status message will redrive its pending I/O requests. However, faster hosts will typically initiate their pending I/O requests sooner than slower hosts. As a result, the slower hosts may be “starved out” as the storage control unit will receive and process I/O requests from the faster hosts first, causing it to exhaust its internal resources before it can process I/O requests from the slower hosts.